@ayana/logger
![Install size](https://packagephobia.now.sh/badge?p=@ayana/logger)
Useful and great looking logging made easy
What this is
This is a logging library inspired by the easy use of slf4j
How it helps with logging
Besides coloring your output, this logger makes it easy to log where you are logging from. This is done by some v8 StackTrace API magic. By that we can find out the module name and the path of your file in the module. This also works for modules in the node_modules
folder. In addition the config is global, which makes it easy to control which modules and even single classes are allowed to log at which levels.
Limitaions
- There is currently no way to change the logging levels or the logging output format (This can be changed if needed)
- There is currently no way of putting the output to something else besides the stdout (Changing this is planned, see below)
Installation
With NPM
npm i @ayana/logger
With Yarn
yarn add @ayana/logger
Configuration
IMPORTANT: All projects that use this module SHOULD HAVE the code that is executed in one of the following folders (checked in the order listed): build
, src
, lib
. If this is ignored the output might get messed up or the entire logger might stop working entirely. However you can add checked folders through the config with an array of strings. Note that this may impact on other modules using this logger.
Logger.setConfig({
level: 'INFO',
loggers: [{
name: 'helloworld:hello.Hello',
level: 'DEBUG',
exact: false,
}],
codeDirs: [
'test',
],
});
Usage
Let's say your module is called helloworld
and your JavaScript file is located in the folder src/hello
. The filename doesn't matter.
const Logger = require('@ayana/logger');
const log = Logger.get('Hello');
class Hello {
constructor() {
log.info('Hello World!');
}
}
const logOfClass = Logger.get(Hello);
Future goals
- Get rid of winston as it is quite large and most of its functionality is not needed
- Allow more outputs besides stdout
- Integrate well-looking logging of errors
Links
GitLab repository
NPM package
License
Refer to the LICENSE file.